The present application relates generally to an improved data processing apparatus and method and more specifically to mechanisms for preserving dedicated temporary allocation virtualization functions in a power management environment.
There is an emerging customer requirement for better power and thermal management in server systems. Customers increasingly expect systems to behave in such a way as to be power-efficient. Customers also want the ability to set policies that trade off power and performance in order to meet their particular objectives. For example, customers want to be able to over-provision their installations relative to the nominal maximum power and temperature values of the systems that they install but be able to take advantage of the variability in workloads and utilization to ensure that the systems operate correctly and within the limits of the available power and cooling.
IBM®'s EnergyScale™ controls the power and temperature of running systems in a performance-aware manner under the direction of a set of policies and objectives specified through EnergyScale™'s user interfaces. To do so, EnergyScale™ implements detailed, periodic measurement of processor core power and temperature, measurement of the power consumed by the entire system board as well as any plugged-in processor cards and measurement of the memory power and temperature to the system. EnergyScale™ uses the results of these measurements to adjust the system's operation and configuration to meet specified objectives for power, temperature, and performance by using closed-loop feedback control operating in real time.
One of the tools used by EnergyScale™ to control power is to adjust the frequency and voltage of the processor chips and cores in the system to control the power dissipation as a function of the user specified energy scale policy. Early EnergyScale™ designs required that the voltage and frequency of all central processing units (CPUs) in the system maintained at the same value. As the EnergyScale™ design and implementation became more sophisticated, it became possible to have cores in a system running at different frequencies and voltages and allowed the implementation of more sophisticated power savings algorithms.
However, many multi-threaded applications are written assuming that all CPUs that the application runs on are running at the same frequencies and such applications may not function properly when running on processors at different frequencies. To avoid such application problems, one possible design is to run the processors of a logical partition at the same frequency. This design also requires that all processors in the shared pool run at the same frequency, because it is not possible with currently known technologies to monitor the work and change frequencies at the rate at which micro-partitions are dispatched.